package com.atguigu.stgy.admin.controller;

import com.atguigu.stgy.admin.service.FeeKeyService;
import com.atguigu.stgy.model.entity.AttrKey;
import com.atguigu.stgy.model.entity.FeeKey;
import com.atguigu.stgy.admin.service.impl.FeeKeyServiceImpl;
import com.atguigu.stgy.model.result.R;
import com.atguigu.stgy.model.vo.FeeKeyVO;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;

import java.util.List;

//

/**
 * 杂项费用名称表(fee_key)表控制层
 *
 * @author xxxxx
 */
@RestController
@RequestMapping("/admin/fee")
public class FeeKeyController {
    /**
     * 服务对象
     */
    @Resource
    private FeeKeyService feeKeyService;

    /*
        查询 杂费列表数据
        分析一个需求：
            1、请求方式+路径

            2、请求参数：没有
            3、查询页面需要的数据封装响应给前端
                fee_key:
                    List<fee_value>
                页面需要的数据来自于两张表，每个实体类都不能单独接受数据响应
                    方式1：在表映射的实体类中添加额外的属性 封装页面需要的数据
                    方式2：自定义vo类  封装页面需要的数据
                            查询数据库后将结果设置到vo对象中   view object/value object
     */
    @GetMapping("list")
    @Operation(summary = "查询杂费属性和值列表")
    public R<List<FeeKeyVO>> list(){
        return R.ok(feeKeyService.listFeeKeyVOs());
    }

    @Operation(summary = "新增/更新 杂费信息属性")
    @PostMapping("key/saveOrUpdate")
    public R saveOrUpdate(@RequestBody FeeKey feeKey){
        feeKeyService.saveOrUpdate(feeKey);
        return R.ok();
    }
    ///attr/key/deleteById?attrKeyId=1795621399293964289
    @Operation(summary = "删除 杂费信息属性")
    @DeleteMapping("key/deleteById")
    public R deleteById(@RequestParam("feeKeyId")Long feeKeyId){
        feeKeyService.removeById(feeKeyId);
        return R.ok();
    }
}
